package com.yonyou.cyxdms.sysAuth.service.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;
import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.yonyou.cyxdms.framework.bean.entity.base.DMSBasePO;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 车厂公司基本信息
 * </p>
 *
 * @author quankk
 * @since 2019-07-05
 */
@TableName("tm_dealer_info")
public class CarFactoryBasicinfoPO extends DMSBasePO<CarFactoryBasicinfoPO> {

    private static final long serialVersionUID = 1L;

    /**
     * DEALER_ID
     */
        @TableId(value = "DEALER_ID", type = IdType.AUTO)
        private Long dealerId;
    /**
     * 公司代码
     */
    @TableField("COMPANY_CODE")
    private String companyCode;
    /**
     * 经销商代码
     */
    @TableField("DEALER_CODE")
    private String dealerCode;
    /**
     * 上级单位
     */
    @TableField("PARENT_ORG")
    private String parentOrg;
    /**
     * 维修站简称
     */
    @TableField("DEALER_SHORTNAME")
    private String dealerShortname;
    /**
     * 维修站名称
     */
    @TableField("DEALER_NAME")
    private String dealerName;
    /**
     * 省份
     */
    @TableField("PROVINCE")
    private String province;
    /**
     * 城市
     */
    @TableField("CITY")
    private String city;
    /**
     * 所在区县
     */
    @TableField("COUNTY")
    private String county;
    /**
     * 企业性质
     */
    @TableField("PROPERTY")
    private String property;
    /**
     * E_MAIL
     */
    @TableField("E_MAIL")
    private String eMail;
    /**
     * 邮编
     */
    @TableField("ZIP_CODE")
    private String zipCode;
    /**
     * 传真
     */
    @TableField("FAX")
    private String fax;
    /**
     * 开业日期
     */
    @TableField("OPEN_DATE")
    private LocalDate openDate;
    /**
     * 24小时热线电话
     */
    @TableField("HOT_LINE")
    private String hotLine;
    /**
     * 销售热线
     */
    @TableField("SALES_LINE")
    private String salesLine;
    /**
     * 售后热线
     */
    @TableField("SERVICE_LINE")
    private String serviceLine;
    /**
     * 地址
     */
    @TableField("ADDRESS")
    private String address;
    /**
     * 营业时间
     */
    @TableField("BUSINESS_HOURS")
    private String businessHours;
    /**
     * 建站日期
     */
    @TableField("CREATED_DATE")
    private LocalDate createdDate;
    /**
     * 有效/无效      
     */
    @TableField("DEALER_STATUS")
    private Integer dealerStatus;
    /**
     * 公司主页
     */
    @TableField("COMPANY_HOMEPAGE")
    private String companyHomepage;
    /**
     * 备注
     */
    @TableField("REMARK")
    private String remark;
    /**
     * 是否主店
     */
    @TableField("IS_MAIN")
    private Integer isMain;
    /**
     * 此经销商对应组织表里的主键
     */
    @TableField("ORGDEPT_ID")
    private Integer orgdeptId;
    /**
     * 职位控制开关
     */
    @TableField("POSITION_CTRL")
    private Integer positionCtrl;
    /**
     * 是否固化
     */
    @TableField("IS_FIXED")
    private Integer isFixed;
    /**
     * 畅捷支付合作者id
     */
    @TableField("PARTNER_ID")
    private String partnerId;
    /**
     * 私钥
     */
    @TableField("PRIVATE_KEY")
    private String privateKey;
    /**
     * 公钥
     */
    @TableField("PUBLIC_KEY")
    private String publicKey;
    /**
     * 数据类型：经销商、集团
     */
    @TableField("DATA_TYPE")
    private Integer dataType;
    /**
     * 产品购买类型
     */
    @TableField("PRODUCT_TYPE")
    private Integer productType;
    /**
     * 厂家用户名(部级分配连锁维修企业总部)
     */
    @TableField("USER_NAME")
    private String userName;
    /**
     * 厂家账号
     */
    @TableField("USER_CODE")
    private String userCode;
    /**
     * 密码(部级分配的密码)
     */
    @TableField("PASSWORD")
    private String password;
    /**
     * 获取接口调用凭证URL
     */
    @TableField("URL1")
    private String url1;
    /**
     * 道路经营许可证号/机动车维修经营许可证号
     */
    @TableField("LICENSE")
    private String license;
    /**
     * 维修企业唯一标识
     */
    @TableField("UNIQUE_CODE")
    private String uniqueCode;
    /**
     * 获取维修企业唯一标识URL
     */
    @TableField("URL2")
    private String url2;
    /**
     * 批量新增电子健康档案URL
     */
    @TableField("URL3")
    private String url3;
    /**
     * 重传标识 1.重传且上传 2.仅重传
     */
    @TableField("REPEAT_TAG")
    private String repeatTag;
    /**
     * 重传起始日期
     */
    @TableField("REPEAT_DATE_FROM")
    private LocalDateTime repeatDateFrom;
    /**
     * 重传截止日期
     */
    @TableField("REPEAT_DATE_TO")
    private LocalDateTime repeatDateTo;
    /**
     * 数据来源渠道
     */
    @TableField("DATA_SOURCE_CHANNEL")
    private Integer dataSourceChannel;
    /**
     * 销售流程工作流
     */
    @TableField("ACTIVITI_TYPE")
    private Integer activitiType;
    /**
     * 企业类型
     */
    @TableField("DEALER_TYPE_CODE")
    private Integer dealerTypeCode;
    /**
     * 店面数量
     */
    @TableField("STORE_NUMBER")
    private Integer storeNumber;
    /**
     * 费用
     */
    @TableField("COST")
    private Double cost;
    /**
     * 联系人
     */
    @TableField("LINKMAN")
    private String linkman;
    /**
     * 电话
     */
    @TableField("PHONE")
    private String phone;
    /**
     * 品牌
     */
    @TableField("BRAND")
    private String brand;
    @TableField("IS_DELETED")
    @Version
    @TableLogic
    private Boolean isDeleted;

    public CarFactoryBasicinfoPO() {
        super();
    }


    public Long getDealerId() {
        return dealerId;
    }

    public void setDealerId(Long dealerId) {
        this.dealerId = dealerId;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getDealerCode() {
        return dealerCode;
    }

    public void setDealerCode(String dealerCode) {
        this.dealerCode = dealerCode;
    }

    public String getParentOrg() {
        return parentOrg;
    }

    public void setParentOrg(String parentOrg) {
        this.parentOrg = parentOrg;
    }

    public String getDealerShortname() {
        return dealerShortname;
    }

    public void setDealerShortname(String dealerShortname) {
        this.dealerShortname = dealerShortname;
    }

    public String getDealerName() {
        return dealerName;
    }

    public void setDealerName(String dealerName) {
        this.dealerName = dealerName;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCounty() {
        return county;
    }

    public void setCounty(String county) {
        this.county = county;
    }

    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }

    public String geteMail() {
        return eMail;
    }

    public void seteMail(String eMail) {
        this.eMail = eMail;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public LocalDate getOpenDate() {
        return openDate;
    }

    public void setOpenDate(LocalDate openDate) {
        this.openDate = openDate;
    }

    public String getHotLine() {
        return hotLine;
    }

    public void setHotLine(String hotLine) {
        this.hotLine = hotLine;
    }

    public String getSalesLine() {
        return salesLine;
    }

    public void setSalesLine(String salesLine) {
        this.salesLine = salesLine;
    }

    public String getServiceLine() {
        return serviceLine;
    }

    public void setServiceLine(String serviceLine) {
        this.serviceLine = serviceLine;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getBusinessHours() {
        return businessHours;
    }

    public void setBusinessHours(String businessHours) {
        this.businessHours = businessHours;
    }

    public LocalDate getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(LocalDate createdDate) {
        this.createdDate = createdDate;
    }

    public Integer getDealerStatus() {
        return dealerStatus;
    }

    public void setDealerStatus(Integer dealerStatus) {
        this.dealerStatus = dealerStatus;
    }

    public String getCompanyHomepage() {
        return companyHomepage;
    }

    public void setCompanyHomepage(String companyHomepage) {
        this.companyHomepage = companyHomepage;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getIsMain() {
        return isMain;
    }

    public void setIsMain(Integer isMain) {
        this.isMain = isMain;
    }

    public Integer getOrgdeptId() {
        return orgdeptId;
    }

    public void setOrgdeptId(Integer orgdeptId) {
        this.orgdeptId = orgdeptId;
    }

    public Integer getPositionCtrl() {
        return positionCtrl;
    }

    public void setPositionCtrl(Integer positionCtrl) {
        this.positionCtrl = positionCtrl;
    }

    public Integer getIsFixed() {
        return isFixed;
    }

    public void setIsFixed(Integer isFixed) {
        this.isFixed = isFixed;
    }

    public String getPartnerId() {
        return partnerId;
    }

    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    public String getPrivateKey() {
        return privateKey;
    }

    public void setPrivateKey(String privateKey) {
        this.privateKey = privateKey;
    }

    public String getPublicKey() {
        return publicKey;
    }

    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }

    public Integer getDataType() {
        return dataType;
    }

    public void setDataType(Integer dataType) {
        this.dataType = dataType;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUrl1() {
        return url1;
    }

    public void setUrl1(String url1) {
        this.url1 = url1;
    }

    public String getLicense() {
        return license;
    }

    public void setLicense(String license) {
        this.license = license;
    }

    public String getUniqueCode() {
        return uniqueCode;
    }

    public void setUniqueCode(String uniqueCode) {
        this.uniqueCode = uniqueCode;
    }

    public String getUrl2() {
        return url2;
    }

    public void setUrl2(String url2) {
        this.url2 = url2;
    }

    public String getUrl3() {
        return url3;
    }

    public void setUrl3(String url3) {
        this.url3 = url3;
    }

    public String getRepeatTag() {
        return repeatTag;
    }

    public void setRepeatTag(String repeatTag) {
        this.repeatTag = repeatTag;
    }

    public LocalDateTime getRepeatDateFrom() {
        return repeatDateFrom;
    }

    public void setRepeatDateFrom(LocalDateTime repeatDateFrom) {
        this.repeatDateFrom = repeatDateFrom;
    }

    public LocalDateTime getRepeatDateTo() {
        return repeatDateTo;
    }

    public void setRepeatDateTo(LocalDateTime repeatDateTo) {
        this.repeatDateTo = repeatDateTo;
    }

    public Integer getDataSourceChannel() {
        return dataSourceChannel;
    }

    public void setDataSourceChannel(Integer dataSourceChannel) {
        this.dataSourceChannel = dataSourceChannel;
    }

    public Integer getActivitiType() {
        return activitiType;
    }

    public void setActivitiType(Integer activitiType) {
        this.activitiType = activitiType;
    }

    public Integer getDealerTypeCode() {
        return dealerTypeCode;
    }

    public void setDealerTypeCode(Integer dealerTypeCode) {
        this.dealerTypeCode = dealerTypeCode;
    }

    public Integer getStoreNumber() {
        return storeNumber;
    }

    public void setStoreNumber(Integer storeNumber) {
        this.storeNumber = storeNumber;
    }

    public Double getCost() {
        return cost;
    }

    public void setCost(Double cost) {
        this.cost = cost;
    }

    public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public Boolean getDeleted() {
        return isDeleted;
    }

    public void setDeleted(Boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    @Override
    protected Serializable pkVal() {
        return this.dealerId;
    }

    @Override
    public String toString() {
        return "CarFactoryBasicinfoPO{" +
        "dealerId=" + dealerId +
        ", companyCode=" + companyCode +
        ", dealerCode=" + dealerCode +
        ", parentOrg=" + parentOrg +
        ", dealerShortname=" + dealerShortname +
        ", dealerName=" + dealerName +
        ", province=" + province +
        ", city=" + city +
        ", county=" + county +
        ", property=" + property +
        ", eMail=" + eMail +
        ", zipCode=" + zipCode +
        ", fax=" + fax +
        ", openDate=" + openDate +
        ", hotLine=" + hotLine +
        ", salesLine=" + salesLine +
        ", serviceLine=" + serviceLine +
        ", address=" + address +
        ", businessHours=" + businessHours +
        ", createdDate=" + createdDate +
        ", dealerStatus=" + dealerStatus +
        ", companyHomepage=" + companyHomepage +
        ", remark=" + remark +
        ", isMain=" + isMain +
        ", orgdeptId=" + orgdeptId +
        ", positionCtrl=" + positionCtrl +
        ", isFixed=" + isFixed +
        ", partnerId=" + partnerId +
        ", privateKey=" + privateKey +
        ", publicKey=" + publicKey +
        ", dataType=" + dataType +
        ", productType=" + productType +
        ", userName=" + userName +
        ", userCode=" + userCode +
        ", password=" + password +
        ", url1=" + url1 +
        ", license=" + license +
        ", uniqueCode=" + uniqueCode +
        ", url2=" + url2 +
        ", url3=" + url3 +
        ", repeatTag=" + repeatTag +
        ", repeatDateFrom=" + repeatDateFrom +
        ", repeatDateTo=" + repeatDateTo +
        ", dataSourceChannel=" + dataSourceChannel +
        ", activitiType=" + activitiType +
        ", dealerTypeCode=" + dealerTypeCode +
        ", storeNumber=" + storeNumber +
        ", cost=" + cost +
        ", linkman=" + linkman +
        ", phone=" + phone +
        ", brand=" + brand +
        ", isDeleted=" + isDeleted +
        "}";
    }


    /**
     * 将PO 信息转化为DTO
     *
     * @param dto 需要进行转换的dto
     * @author quankk
     * @since 2018/7/22 0022
     */
    protected <T extends BaseDTO> void transDtoToPo(T dto) {
        BeanMapperUtil.copyProperties(this, dto, "dealerId");
    }


}
